/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package fr.uniscol.editors;

import fr.uniscol.model.DefaultUser;
import fr.uniscol.service.IUtilisateurService;
import java.beans.PropertyEditorSupport;

/**
 *
 * @author Christophe
 */
public class UtilisateurPropertyEditor extends PropertyEditorSupport  {

    private IUtilisateurService utilisateurService;
    
    public UtilisateurPropertyEditor(IUtilisateurService utilisateurService){
        this.utilisateurService = utilisateurService;
    }
    
    @Override
    public void setAsText(String text) throws IllegalArgumentException {
        long userId = 0;
        
        try{
            userId = Long.parseLong(text);
            
        }catch(NumberFormatException e){
            userId = 0;
        }
        
        if(userId == 0){
            setValue(null);
            
        }else{
            setValue(utilisateurService.getUtilisateurById(userId));
        }
        
        if(getValue() == null){
            setValue(new DefaultUser());
        }
    }

    @Override
    public String getAsText() {
        
        DefaultUser user = (DefaultUser) getValue();
        
        if(user == null){
            return "0";
        }else{
            return user.getId() + "";
        }
    }
}
